package com.warrior.superdata.dds.datasource;

import com.google.common.collect.Maps;
import com.warrior.superdata.dds.domain.DBVo;

import java.util.Map;
import java.util.Optional;

/**
 * 动态数据源操作类
 */
public class ProjectDBMgr {
    /**
     * 存储code和对应的数据库信息对象
     */
    private Map<String, DBVo> dbNameMap = Maps.newHashMap();

    /**
     * 构建类
     */
    private static class ProjectDBMgrBuilder{
        private static ProjectDBMgr instance = new ProjectDBMgr();
    }

    private ProjectDBMgr(){

    }

    public static ProjectDBMgr instance(){
        return ProjectDBMgrBuilder.instance;
    }

    /**
     * 按照code获取对应的数据库连接信息
     * @param projectCode
     * @return
     */
    public DBVo getDBInfo(String projectCode){
        DBVo result = Optional.ofNullable(dbNameMap.get(projectCode)).orElse(null);
        return  result;
    }

    /**
     * 添加数据库信息
     * @param projectCode
     * @param dbVo
     */
    public void addDBInfo(String projectCode,DBVo dbVo){
        dbNameMap.put(projectCode,dbVo);
    }
}
